package productidentification;

/**
 * @author Paula Chen
 * 
 *         Interface for different product identifiers to implement.
 * 
 */
interface IProductIdentifierLink extends IProductIdentifier
{
  /**
   * Try to identify a product
   * 
   * @param barcode
   *          the barcode of a product to identify
   * @return the description of the identified product
   */
  public String tryIdentifyProduct(String barcode);

  /**
   * Pass to the next link
   * 
   * @param barcode
   *          the barcode of a product to identify
   * @return the description of the identified product
   */
  public String passToNextLink(String barcode);

  /**
   * Set the Product Identifier to use if this one fails
   * 
   * @param link
   *          The Product Identifier to use if this one fails
   */
  void setNextLink(IProductIdentifierLink link);
}
